
/*
*Released on 28th June 2008.
*Any violations can be reported at paritosh@wikiocean.net
*What is treated as violations can be found at www.wikiocean.net/ppl1-voilations*
******************************************************************************
* The contents of this file are subject to POOL Public License 1.0 and later.
* POOL Public License is based on Affero GPL v3 and additional conditions.
* ("License"); You may not use this file except in compliance with the License
* You may obtain a copy of the Affero GPL v3 License at http://www.gnu.org/licenses/agpl.html
* You may obtain a copy of the POOL Public License 1.0 or later at www.wikiocean.net/license/ppl.html
* Software distributed under POOL Public License 1.0 is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
* The Initial Developer of the Original Code is Paritosh Pungaliya (C) 2008. All Rights Reserved.
******************************************************************************
* Objective of the additional terms (license)
* 1) Is to extend the software freedom to freedom to work.
* 2) To ensure that knowledge is free from monopoly of agencies.
* 3) To avoid a situation where big corporate or investor can buy out free software groups and companies and then start milking the communities built around it.
* (this trend can be seen how the freedom is curtailed in companies that get Venture Capital funding.)
******************************************************************************
*/

package  utility;

import logger.PoolLogger;
import dbmanager.DBManager;

public class Replace
{
	PoolLogger pl;
	
	public Replace() {
		// logger
		pl = (PoolLogger) PoolLogger.getLogger(this.getClass().getName());
	}
	
  public static String Replace(String str,String replacestring)
  {
	int [] specialChar = {32,33,34,35,36,37,38,40,41,42,43,44,45,46,47,58,59,60,61,62,63,64,91,92,93,94,95,96,123,124,125,126};
	int index=0;
	if(str.indexOf(replacestring)==-1)
		return str;
	else
	{
		while(index!=-1)
		{
			int indexofspchar =Index.indexOf(str, replacestring,index+1);
			if(indexofspchar!=-1)
			{
				boolean flag=false;
				try {
					char chara[] = str.toCharArray();
					for(int i=index;i<specialChar.length;i++)
					{
						if(indexofspchar+replacestring.length()<=chara.length-1)
							if(specialChar[i]==chara[indexofspchar+replacestring.length()])
							{
								flag = true;
								break;
							}
						if(specialChar[i]==chara[indexofspchar-1])
						{
							flag = true;
							break;
						}
					}
				} 
				catch (Exception e) 
				{
					e.printStackTrace();
				} 
				if(!flag)
				{
					//System.out.println(str.substring(0, indexofspchar));
					//System.out.println(str.substring(indexofspchar+replacestring.length(), str.length()));
					str =str.substring(0, indexofspchar) + str.substring(indexofspchar+replacestring.length(), str.length());
				}	
			}
			index = indexofspchar;
		}
	}
	return str;
  }
  
  public static String Replace(String str,String replacestring,String value)
  {
	int [] specialChar = {32,33,34,35,36,37,38,40,41,42,43,44,45,46,47,58,59,60,61,62,63,64,91,92,93,94,95,96,123,124,125,126};
	int index=0;
	if(str.indexOf(replacestring)==-1)
		return str;
	else
	{
		while(index!=-1)
		{
			int indexofspchar =Index.indexOf(str, replacestring,index);
			if(indexofspchar!=-1)
			{
				boolean flag=false;
				try {
					char chara[] = str.toCharArray();
					for(int i=index;i<specialChar.length;i++)
					{
						if(indexofspchar+replacestring.length()<=chara.length-1)
						if(specialChar[i]==chara[indexofspchar+replacestring.length()])
						{
							flag = true;
							break;
						}
						if(indexofspchar>0)
						if(specialChar[i]==chara[indexofspchar-1])
						{
							flag = true;
							break;
						}
					}
				} 
				catch (Exception e) 
				{
					e.printStackTrace();
				} 
				if(!flag)
				{
					//System.out.println(str.substring(0, indexofspchar));
					//System.out.println(str.substring(indexofspchar+replacestring.length(), str.length()));
					str =str.substring(0, indexofspchar) + value+str.substring(indexofspchar+replacestring.length(), str.length());
					index = indexofspchar + replacestring.length()+1;
				}	
				else
					index = indexofspchar;
			}
			else
				break;
		}
	}
	return str;
  }
  
  
  public static String Replacewithoutspchar(String str,String replacestring,String value)
  {
	int index=0;
	if(str.indexOf(replacestring)==-1)
		return str;
	else
	{
		while(index!=-1)
		{
			int indexofspchar =Index.indexOf(str, replacestring,index);
			if(indexofspchar!=-1)
			{
				boolean flag=false; 
				str =str.substring(0, indexofspchar) + value+str.substring(indexofspchar+replacestring.length(), str.length());
				index = indexofspchar + replacestring.length()+1;				
			}
			else
				break;
		}
	}
	return str;
  }
  
  
  public static void main(String[] args) 
  {
	 System.out.println(Replace("'the password of person is'a||password'", "'","''"));
	 System.out.println(Replace("'the password of person is'a||password'", "'","''"));
	 
  } 
  
}
